#include <linux/module.h>
#include <linux/version.h>
#include <linux/fs.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/sched.h>
#include <linux/pm.h>
#include <linux/sysctl.h>
#include <linux/proc_fs.h>
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/input.h>
#include <linux/irq.h>
#include <asm/uaccess.h>
#include <asm/io.h>


static int led_probe(struct platform_device * pdev)
{
	printk("[LED_DRV]  led_probe\n");

	struct resource		*res;

	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);

	
	#if 1
	printk("res.start = %ld\n", res->start);
	printk("res.end = %ld\n", res->end);
	printk("res.flags = %ld\n", res->flags);
	#endif
	
	return 0;
}

static int  led_remove(struct platform_device *pdev)
{
	printk("[LED_DRV]  led_remove\n");
	return 0;
}
static void  led_shutdown(struct platform_device *pdev)
{
	printk("[LED_DRV]  led_shutdown\n");
	return ;
}
static int led_suspend(struct platform_device *pdev, pm_message_t state)
{
	printk("[LED_DRV]  led_suspend\n");
	return 0;
}
static int  led_resume(struct platform_device *pdev)
{
	printk("[LED_DRV]  led_resume\n");
	return 0;
}

static struct platform_driver led_drv = {
	.probe = led_probe,
	.remove  =  led_remove,
	.shutdown = led_shutdown,
	.suspend = led_suspend,
	.resume = led_resume,
	.driver = {
		.name = "led",
	},
	
	//static const struct platform_device_id *id_table;
};

static int led_drv_init(void)
{
	platform_driver_register(&led_drv );
	return 0;
}

static void led_drv_exit(void)
{
	platform_driver_unregister(&led_drv );
	return ;
}

module_init(led_drv_init);
module_exit(led_drv_exit);

MODULE_LICENSE("GPL");




